Skip to content

Персональные непрочитанные в чатах проектов - #871

Draft
TThanos3000 wants to merge 1 commit into
feat/dev-chat-backend-foundation-20261113from
feat/dev-project-chat-unreads-20261113
Draft

TThanos3000 wants to merge 1 commit into
feat/dev-chat-backend-foundation-20261113from
feat/dev-project-chat-unreads-20261113

Conversation

@TThanos3000

Copy link
Copy Markdown
Collaborator

Следующий этап восстановления чатов поверх #870. После попадания #870 в dev этот PR следует перенаправить в dev.

  • Событие message_read хранит отметку конкретного участника по message_id. Повтор не дублирует отметку. Открытие нового сообщения не закрывает пропущенные ранее. Свои и удаленные сообщения исключены из непрочитанных.
  • Список и карточка проектного чата возвращают unread_count и first_unread_message_id. История и WebSocket возвращают персональный is_read для входящих и read_count для фактически зарегистрированных прочтений. Старый флаг is_read=true сохраняется как прочитанная история без реконструкции конкретных читателей.
  • В Django-админке действие «Отметить как прочитанные для себя» использует ту же операцию и проверку членства в проекте. Получение истории через API не отмечает ее прочитанной.

Проверка: 59 тестов на локальном PostgreSQL, 44 успешных теста чатов на SQLite (один пропуск из-за отсутствия блокировок строк). Проверены миграция chats.0013, makemigrations --check --dry-run и линтеры для измененных файлов чатов.

Angular отдельно подключит счетчики к списку и отправку message_read к видимым сообщениям в проектном чате.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants